package com.ruoyi.order.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 用户订单视图对象 t_user_order
 *
 * @author zhi
 * @date 2024-03-31
 */
@Data
@ExcelIgnoreUnannotated
public class UserOrderVo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键Id
     */
    @ExcelProperty(value = "主键Id")
    private Long id;

    /**
     * 姓名
     */
    @ExcelProperty(value = "姓名")
    private String username;

    /**
     * 电话
     */
    @ExcelProperty(value = "电话")
    private String mobile;

    /**
     * 地址
     */
    @ExcelProperty(value = "地址")
    private String address;

    /**
     * 订单号
     */
    @ExcelProperty(value = "订单号")
    private String orderId;

    /**
     * 订单描述
     */
    @ExcelProperty(value = "订单描述")
    private String description;

    /**
     * 套餐
     */
//    @ExcelProperty(value = "套餐", converter = ExcelDictConvert.class)
//    @ExcelDictFormat(dictType = "order_package")
    @ExcelProperty(value = "套餐")
    private String orderPackage;

    /**
     * 金额
     */
    @ExcelProperty(value = "金额")
    private BigDecimal amount;

    /**
     * 货币种类
     */
    @ExcelProperty(value = "货币种类", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "currency_type")
    private String currency;

    /**
     * 支付订单id
     */
//    @ExcelProperty(value = "支付订单id")
    private String payId;

    /**
     * 交易流水号
     */
//    @ExcelProperty(value = "交易流水号")
    private String transNo;

    /**
     * 支付方式，0在线支付,1货到付款
     */
    @ExcelProperty(value = "支付方式，0在线支付,1货到付款", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "pay_type")
    private String payType;

    /**
     * 支付者账号
     */
//    @ExcelProperty(value = "支付者账号")
    private String payerEmail;

    /**
     * 支付时间
     */
//    @ExcelProperty(value = "支付时间")
    private Date payTime;

    /**
     * 订单状态，0未支付，1支付 2 取消 3超时
     */
    @ExcelProperty(value = "订单状态，0未支付，1支付 2 取消 3超时", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "order_status")
    private String orderStatus;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;


    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    @ExcelProperty(value = "创建时间")
    private Date createTime;


}
